package com.bd.myprotolib.proto;

import com.bd.myprotolib.bean.XTZJ_Bean;
import com.bd.myprotolib.bean.ZJXX_Bean;
import com.hailiao.hlbdcore.base.BaseBDProto;
import com.hailiao.hlbdcore.base.BaseInBean;
import com.hailiao.hlbdcore.base.BaseOutBean;
import com.hailiao.hlbdcore.constant.ProtobufType;

import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.Collections;
import java.util.List;

/**
 * java 版本
 * @Author: D10NG
 * @Time: 2021/12/3 16:43
 */
public enum Proto4My implements BaseBDProto {

    ZJ {
        @Nullable
        @Override
        public String getInCmd() {
            return "XTZJ";
        }

        @NotNull
        @Override
        public Class<? extends BaseInBean> getInBeanClz() {
            return XTZJ_Bean.class;
        }

        @Nullable
        @Override
        public String getOutCmd() {
            return "ZJXX";
        }

        @NotNull
        @Override
        public Class<? extends BaseOutBean> getOutBeanClz() {
            return ZJXX_Bean.class;
        }

        @NotNull
        @Override
        public String getDescription() {
            return "设备自检";
        }
    }
    ;

    @NotNull
    @Override
    public String getDescription() {
        return null;
    }

    @NotNull
    @Override
    public Class<? extends BaseInBean> getInBeanClz() {
        return null;
    }

    @Nullable
    @Override
    public String getInCmd() {
        return null;
    }

    @NotNull
    @Override
    public ProtobufType getInProtobuf() {
        return ProtobufType.BD_4;
    }

    @Override
    public boolean isNeedExpand() {
        return false;
    }

    @NotNull
    @Override
    public Class<? extends BaseOutBean> getOutBeanClz() {
        return null;
    }

    @Nullable
    @Override
    public String getOutCmd() {
        return null;
    }

    @NotNull
    @Override
    public ProtobufType getOutProtobuf() {
        return ProtobufType.BD_4;
    }

    @NotNull
    @Override
    public String getType() {
        return "标准北斗4.0协议";
    }

    @NotNull
    @Override
    public List<String> getUseDevice() {
        return Collections.singletonList("通用");
    }

    @NotNull
    @Override
    public String getUseFirmware() {
        return "通用";
    }

    @NotNull
    @Override
    public String getOutputInfo() {
        return null;
    }
}
